/*
 *  MilovoTables.h
 *  MilovoMg00
 *
 *  Created by jonny on 6/8/06.
 *  Copyright 2006 __MyCompanyName__. All rights reserved.
 *
 */

#ifndef MILOVO_TABLES_H
#define MILOVO_TABLES_H

#include "Milovo.h"
#include "Milovo_HCommons.h"
#include "SimulationParam.h"
#include "InitParam.h"
#include "SystemParam.h"
#include "MilovoCommonFuncs.h"

class MilovoEnvironment
{
	Mil_Int DebugLevel;
	Mil_Int CurrentStep;
	
	Mil_Int NumInnovationSucceded;
	Mil_Int NumInnovationFailed;
	Mil_Int NumAgentsBorn;
	Mil_Int NumAgentsDeadByMarket;
	Mil_Int NumAgentsDeadByZeroRecipes;
	Mil_Int NumRecipesDeadByProduction;
	Mil_Int NumRecipesDeadByMarket;
	Mil_Double GrowProbability;
	
public:
	MilovoEnvironment();
	MilovoEnvironment(Mil_Int tmpStepToSet, Mil_Int tmpDebugLevel);
	~MilovoEnvironment();
	
	Mil_Int GetDebugLevel() {return DebugLevel;}
	Mil_Int GetCurrentStep() {return CurrentStep;}
	Mil_Int GetNumInnovationSucceded() {return NumInnovationSucceded;}
	Mil_Int GetNumInnovationFailed() {return NumInnovationFailed;}
	Mil_Int GetNumAgentsBorn() {return NumAgentsBorn;}
	Mil_Int GetNumAgentsDeadByMarket() {return NumAgentsDeadByMarket;}
	Mil_Int GetNumAgentsDeadByZeroRecipes() {return NumAgentsDeadByZeroRecipes;}
	Mil_Int GetNumRecipesDeadByProduction() {return NumRecipesDeadByProduction;}
	Mil_Int GetNumRecipesDeadByMarket() {return NumRecipesDeadByMarket;}
	Mil_Double GetGrowProbability() {return GrowProbability;}
	
	void SetDebugLevel(Mil_Int tmpNewValue) {DebugLevel = tmpNewValue;}
	void SetCurrentStep(Mil_Int tmpNewValue) {CurrentStep = tmpNewValue;}
	void SetNumInnovationSucceded(Mil_Int tmpNewValue) {NumInnovationSucceded = tmpNewValue;}
	void SetNumInnovationFailed(Mil_Int tmpNewValue) {NumInnovationFailed = tmpNewValue;}
	void SetNumAgentsBorn(Mil_Int tmpNewValue) {NumAgentsBorn = tmpNewValue;}
	void SetNumAgentsDeadByMarket(Mil_Int tmpNewValue) {NumAgentsDeadByMarket = tmpNewValue;}
	void SetNumAgentsDeadByZeroRecipes(Mil_Int tmpNewValue) {NumAgentsDeadByZeroRecipes = tmpNewValue;}
	void SetNumRecipesDeadByProduction(Mil_Int tmpNewValue) {NumRecipesDeadByProduction = tmpNewValue;}
	void SetNumRecipesDeadByMarket(Mil_Int tmpNewValue) {NumRecipesDeadByMarket = tmpNewValue;}
	void SetGrowProbability(Mil_Double tmpNewValue) {GrowProbability = tmpNewValue;}
};

#endif

